import axios from 'axios';
import storage from '../storage.js';
import config from '../config.js';

const request = axios.create({
  baseURL: config.base,
  timeout: 50000,
  withCredentials: true,
  headers: {
    'Content-Type': 'application/json;charset=utf-8',
  },
});

// 添加请求拦截器
request.interceptors.request.use(
  (config) => {
    var token = storage.getUserToken();
    if (token) {
      config.headers.Token = token;
    }
    return config;
  },
  (error) => {
    // 对请求错误做些什么
    return Promise.reject(error);
  },
);

// 添加响应拦截器
request.interceptors.response.use(
  (response) => {
    if (response.status === 200) {
      return Promise.resolve(response.data);

      // var code = resp.code !== undefined ? resp.code : 10003;
      // switch (code) {
      // 	case 0:
      // 	case 1:
      // 		return response.data;
      // 		break;
      // 	case 10001:
      // 		//x-request-id错误;
      // 		break;
      // 	case 10003:
      // 		//token错误;
      // 		window.location.href = '/#/login';
      // 		return Promise.reject(request.interceptors.response);
      // 		break;
      // 	case 10005:
      // 		// 请求的接口没有权限
      // 		window.location.href = '/#/401?path=' + resp.data;
      // 		return Promise.reject(request.interceptors.response);
      // 		break;
      // 	default:
      // 		break;
      // }

      // return response.data;
    }

    return Promise.reject(request.interceptors.response.error);
  },
  (error) => {
    // 对响应错误做点什么
    if (error.message.indexOf('timeout') != -1) {
      // 网络超时
    } else if (error.message == 'Network Error') {
      // 网络连接错误;
    } else {
      // 其他错误信息
    }
    return Promise.reject(error);
  },
);

export default request;
